<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php学习笔记[040]</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="show"><span>040 开发自己的UBB代码</span></div>
<?php include 'include/top.php';?>
<div class="text">
<b>UBB</b>
代码是HTML的一个变种,是Ultimate Bulletin Board (国外一个BBS程序，国内也有不少地方使用这个程序)采用的一种特殊的TAG。UBB代码很简单，虽然功能很少，但基本实现了我们常用的一些功能.
<br />
优点：<br />
 1、相对HTML安全性高;<br />
  2、使用简单，方便记忆;<br />
  3、自定义功能强大,扩展性好;<br />
  4、有效较少数据库存储代码；
<br />
缺点：<br />
  <br />
  1、排版功能弱<br />
  2、不允许交叉使用<br />
<br />
UBB代码对应的html代码，我们可以用正则表达的替换功能实现自己的ubb代码<br />
<strong>[url][/url]</strong>:&lt;a href=<br />
<strong>[b][/b]</strong>	:&lt;b&gt;<br />
<strong>[img][/img]</strong>:&lt;img src=
我们用实例来演示它<br />
我们先有几个可以使用的值：<br />
[url]study040.php[/url]<br />
[b]加粗的文字[/b]<br />
[img]file/little.jpg[/img]<br />
我们来写这个代码：<br />
<div class="code">
  <p>&lt;?php<br />
    function get_ubb($ubb)<br />
    {<br />
    $mode=array('/\[url\](.*)\[\/url\]/i','/\[b\](.*)\[\/b\]/i','/\[img\](.*)\[\/img\]/i');//正则数组<br />
    $substr=array('&lt;a href=&quot;\1&quot;&gt;\1&lt;/a&gt;','&lt;b&gt;\1&lt;/b&gt;','&lt;img src=&quot;\1&quot; /&gt;');//替换数组<br />
    $str=preg_replace($mode,$substr,$ubb);//替换函数<br />
    return $str;<br />
    }</p>
  <p>if(isset($_POST['str']))<br />
    {<br />
    $str=$_POST['str'];<br />
    echo $str;<br />
    echo '&lt;br /&gt;'; <br />
    echo get_ubb($str);<br />
    }<br />
    ?&gt;<br />
  &lt;hr&gt;<br />
  &lt;form name=&quot;form1&quot; action=&quot;study040.php&quot; method=&quot;post&quot;&gt;<br />
  &lt;textarea name=&quot;str&quot; id=&quot;textarea&quot; cols=&quot;109&quot; rows=&quot;4&quot;&gt;&lt;/textarea&gt;<br />
  &lt;input name=&quot;submit&quot; type=&quot;submit&quot; value=&quot;提交&quot;&gt; <br />
  &lt;/form&gt;</p>
</div>
我们来测试这个功能
<div class="effect">
<?php
function get_ubb($ubb)
	{
	$mode=array('/\[url\](.*)\[\/url\]/i','/\[b\](.*)\[\/b\]/i','/\[img\](.*)\[\/img\]/i');//正则数组
	$substr=array('<a href="\1">\1</a>','<b>\1</b>','<img src="\1" />');//替换数组
	$str=preg_replace($mode,$substr,$ubb);//替换函数
	return $str;
	}

if(isset($_POST['str']))
	{
	$str=$_POST['str'];
	echo $str;
	echo '<br />';	
	echo get_ubb($str);
	}
?>
<hr>
<form name="form1" action="study040.php" method="post">
  <textarea name="str" id="textarea" cols="109" rows="4"></textarea>
  <input name="submit" type="submit" value="提交"> 
</form>
</div>
</div>

</body>
</html>
